home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / kcl.lha / cmpnew / cmpcall.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  21KB  |  901 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "cmpcall.h"
  5. init_cmpcall(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     (void)(putprop(VV[0],VV[1],VV[2]));
  9.     (void)(putprop(VV[3],VV[4],VV[2]));
  10.     (void)(putprop(VV[5],VV[6],VV[2]));
  11.     MF(VV[52],L4,start,size,data);
  12.     MF(VV[1],L5,start,size,data);
  13.     MF(VV[4],L6,start,size,data);
  14.     MF(VV[6],L7,start,size,data);
  15.     (void)(putprop(VV[42],VV[43],VV[44]));
  16.     MF(VV[43],L9,start,size,data);
  17.     MF(VV[53],L10,start,size,data);
  18.     MF(VV[54],L11,start,size,data);
  19.     MF(VV[55],L12,start,size,data);
  20.     MF(VV[56],L13,start,size,data);
  21.     vs_top=vs_base=base;
  22. }
  23. /*    function definition for C1FUNOB    */
  24.  
  25. static L4()
  26. {    register object *base=vs_base;
  27.     register object *sup=base+VM3;
  28.     vs_reserve(VM3);
  29.     bds_check;
  30.     check_arg(1);
  31.     vs_top=sup;
  32. TTL:;
  33.     base[1]= Cnil;
  34.     if(type_of(base[0])==t_cons){
  35.     goto T7;}
  36.     base[2]= Cnil;
  37.     goto T6;
  38. T7:;
  39.     if(car(base[0])==VV[7]){
  40.     goto T11;}
  41.     base[3]= Cnil;
  42.     goto T10;
  43. T11:;
  44.     if(((endp(cdr(base[0]))?Ct:Cnil))==Cnil){
  45.     goto T13;}
  46.     base[3]= Cnil;
  47.     goto T10;
  48. T13:;
  49.     if(endp(cddr(base[0]))){
  50.     goto T15;}
  51.     base[3]= Cnil;
  52.     goto T10;
  53. T15:;
  54.     if(type_of(cadr(base[0]))==t_cons){
  55.     goto T19;}
  56.     base[4]= Cnil;
  57.     goto T18;
  58. T19:;
  59.     if(((endp(cdadr(base[0]))?Ct:Cnil))==Cnil){
  60.     goto T21;}
  61.     base[4]= Cnil;
  62.     goto T18;
  63. T21:;
  64.     if(caadr(base[0])==VV[8]){
  65.     goto T23;}
  66.     base[4]= Cnil;
  67.     goto T18;
  68. T23:;
  69.     bds_bind(VV[9],Cnil);
  70.     bds_bind(VV[10],Cnil);
  71.     bds_bind(VV[11],Cnil);
  72.     bds_bind(VV[12],Cnil);
  73.     base[10]= cdadr(base[0]);
  74.     base[9]= simple_symlispcall_no_event(VV[57],base+10,1);
  75.     base[4]= list(3,VV[3],cadr(base[9]),base[9]);
  76.     bds_unwind1;
  77.     bds_unwind1;
  78.     bds_unwind1;
  79.     bds_unwind1;
  80. T18:;
  81.     if(base[4]==Cnil)goto T17;
  82.     base[3]= base[4];
  83.     goto T10;
  84. T17:;
  85.     if(type_of(cadr(base[0]))==t_symbol){
  86.     goto T27;}
  87.     base[3]= Cnil;
  88.     goto T10;
  89. T27:;
  90.     base[6]= cadr(base[0]);
  91.     base[1]= simple_symlispcall_no_event(VV[58],base+6,1);
  92.     if((base[1])!=Cnil){
  93.     goto T31;}
  94.     base[5]= Cnil;
  95.     goto T30;
  96. T31:;
  97.     if(car(base[1])==VV[13]){
  98.     goto T35;}
  99.     base[5]= Cnil;
  100.     goto T30;
  101. T35:;
  102.     base[5]= base[1];
  103. T30:;
  104.     if(base[5]==Cnil)goto T29;
  105.     base[3]= base[5];
  106.     goto T10;
  107. T29:;
  108.     base[7]= VV[14];
  109.     base[9]= get(cadr(base[0]),VV[15],Cnil);
  110.     base[8]= (base[9]==Cnil?Ct:Cnil);
  111.     base[6]= simple_symlispcall_no_event(VV[59],base+7,2);
  112.     base[3]= list(3,VV[5],base[6],cadr(base[0]));
  113. T10:;
  114.     if(base[3]==Cnil)goto T9;
  115.     base[2]= base[3];
  116.     goto T6;
  117. T9:;
  118.     if(car(base[0])==VV[16]){
  119.     goto T41;}
  120.     base[2]= Cnil;
  121.     goto T6;
  122. T41:;
  123.     if(((endp(cdr(base[0]))?Ct:Cnil))==Cnil){
  124.     goto T43;}
  125.     base[2]= Cnil;
  126.     goto T6;
  127. T43:;
  128.     if(endp(cddr(base[0]))){
  129.     goto T45;}
  130.     base[2]= Cnil;
  131.     goto T6;
  132. T45:;
  133.     if(type_of(cadr(base[0]))==t_cons){
  134.     goto T49;}
  135.     base[4]= Cnil;
  136.     goto T48;
  137. T49:;
  138.     if(caadr(base[0])==VV[8]){
  139.     goto T51;}
  140.     base[4]= Cnil;
  141.     goto T48;
  142. T51:;
  143.     if(((endp(cdadr(base[0]))?Ct:Cnil))==Cnil){
  144.     goto T53;}
  145.     base[4]= Cnil;
  146.     goto T48;
  147. T53:;
  148.     base[6]= cdadr(base[0]);
  149.     base[5]= simple_symlispcall_no_event(VV[57],base+6,1);
  150.     base[4]= list(3,VV[3],cadr(base[5]),base[5]);
  151. T48:;
  152.     if(base[4]==Cnil)goto T47;
  153.     base[2]= base[4];
  154.     goto T6;
  155. T47:;
  156.     if(type_of(cadr(base[0]))==t_symbol){
  157.     goto T57;}
  158.     base[2]= Cnil;
  159.     goto T6;
  160. T57:;
  161.     base[6]= cadr(base[0]);
  162.     base[1]= simple_symlispcall_no_event(VV[58],base+6,1);
  163.     if((base[1])!=Cnil){
  164.     goto T61;}
  165.     base[5]= Cnil;
  166.     goto T60;
  167. T61:;
  168.     if(car(base[1])==VV[13]){
  169.     goto T65;}
  170.     base[5]= Cnil;
  171.     goto T60;
  172. T65:;
  173.     base[5]= base[1];
  174. T60:;
  175.     if(base[5]==Cnil)goto T59;
  176.     base[2]= base[5];
  177.     goto T6;
  178. T59:;
  179.     base[7]= VV[14];
  180.     base[9]= get(cadr(base[0]),VV[15],Cnil);
  181.     base[8]= (base[9]==Cnil?Ct:Cnil);
  182.     base[6]= simple_symlispcall_no_event(VV[59],base+7,2);
  183.     base[2]= list(3,VV[5],base[6],cadr(base[0]));
  184. T6:;
  185.     if(base[2]==Cnil)goto T5;
  186.     vs_top=(vs_base=base+2)+1;
  187.     return;
  188. T5:;
  189.     base[5]= base[0];
  190.     base[3]= simple_symlispcall_no_event(VV[60],base+5,1);
  191.     base[5]= VV[14];
  192.     base[6]= Ct;
  193.     base[4]= simple_symlispcall_no_event(VV[59],base+5,2);
  194.     base[5]= base[4];
  195.     base[6]= cadr(base[3]);
  196.     (void)simple_symlispcall_no_event(VV[61],base+5,2);
  197.     base[5]= list(3,VV[17],base[4],base[3]);
  198.     vs_top=(vs_base=base+5)+1;
  199.     return;
  200. }
  201. /*    function definition for C2FUNCALL    */
  202.  
  203. static L5()
  204. {    register object *base=vs_base;
  205.     register object *sup=base+VM4;
  206.     vs_reserve(VM4);
  207.     bds_check;
  208.     if(vs_top-vs_base<2) too_few_arguments();
  209.     if(vs_top-vs_base>3) too_many_arguments();
  210.     vs_base=vs_base+2;
  211.     if(vs_base>=vs_top){vs_top=sup;goto T79;}
  212.     vs_top=sup;
  213.     goto T80;
  214. T79:;
  215.     base[2]= Cnil;
  216. T80:;
  217.     {object V1= car(base[0]);
  218.     if((V1!= VV[5]))goto T82;
  219.     base[3]= caddr(base[0]);
  220.     base[4]= base[1];
  221.     base[5]= base[2];
  222.     base[6]= Ct;
  223.     vs_top=(vs_base=base+3)+4;
  224.     L7();
  225.     return;
  226. T82:;
  227.     if((V1!= VV[13]))goto T87;
  228.     base[3]= cddr(base[0]);
  229.     base[4]= base[1];
  230.     symlispcall_no_event(VV[62],base+3,2);
  231.     return;
  232. T87:;
  233.     if((V1!= VV[3]))goto T90;
  234.     base[3]= caddr(base[0]);
  235.     base[4]= base[1];
  236.     vs_top=(vs_base=base+3)+2;
  237.     L6();
  238.     return;
  239. T90:;
  240.     if((V1!= VV[17]))goto T93;
  241.     {object V2;
  242.     base[3]= symbol_value(VV[18]);
  243.     V2= caddr(base[0]);
  244.     bds_bind(VV[18],base[3]);
  245.     if((base[2])!=Cnil){
  246.     goto T96;}
  247.     if(type_of(base[1])==t_cons||base[1]==Cnil){
  248.     goto T99;}
  249.     (void)simple_symlispcall_no_event(VV[63],base+4,0);
  250. T99:;
  251.     if(!(car((V2))==VV[19])){
  252.     goto T103;}
  253.     base[2]= caddr((V2));
  254.     goto T96;
  255. T103:;
  256.     if(!(car((V2))==VV[20])){
  257.     goto T107;}
  258.     base[4]= caaddr((V2));
  259.     base[5]= base[1];
  260.     if((simple_symlispcall_no_event(VV[64],base+4,2))!=Cnil){
  261.     goto T107;}
  262.     base[2]= make_cons(VV[20],caddr((V2)));
  263.     goto T96;
  264. T107:;
  265.     base[4]= simple_symlispcall_no_event(VV[65],base+5,0);
  266.     base[2]= list(2,VV[21],base[4]);
  267.     bds_bind(VV[22],base[2]);
  268.     base[5]= caddr(base[0]);
  269.     base[6]= simple_symlispcall_no_event(VV[66],base+5,1);
  270.     bds_unwind1;
  271. T96:;
  272.     base[4]= base[1];
  273.     vs_top=(vs_base=base+4)+1;
  274.     L11();
  275.     vs_top=sup;
  276.     if((symbol_value(VV[23]))==Cnil){
  277.     goto T122;}
  278.     princ_str("\n    super_funcall(",VV[24]);
  279.     base[4]= base[2];
  280.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  281.     princ_str(");",VV[24]);
  282.     goto T120;
  283. T122:;
  284.     princ_str("\n    super_funcall_no_event(",VV[24]);
  285.     base[4]= base[2];
  286.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  287.     princ_str(");",VV[24]);
  288. T120:;
  289.     base[4]= VV[25];
  290.     symlispcall_no_event(VV[68],base+4,1);
  291.     bds_unwind1;
  292.     return;}
  293. T93:;
  294.     symlispcall_no_event(VV[63],base+3,0);
  295.     return;}
  296. }
  297. /*    function definition for C2CALL-LAMBDA    */
  298.  
  299. static L6()
  300. {    register object *base=vs_base;
  301.     register object *sup=base+VM5;
  302.     vs_reserve(VM5);
  303.     bds_check;
  304.     check_arg(2);
  305.     vs_top=sup;
  306. TTL:;
  307.     {object V3;
  308.     V3= caddr(base[0]);
  309.     if((cadr((V3)))!=Cnil){
  310.     goto T134;}
  311.     if((caddr((V3)))!=Cnil){
  312.     goto T134;}
  313.     if((cadddr((V3)))!=Cnil){
  314.     goto T134;}
  315.     if(type_of(base[1])==t_cons||base[1]==Cnil){
  316.     goto T135;}
  317. T134:;
  318.     if(!(type_of(base[1])==t_cons||base[1]==Cnil)){
  319.     goto T143;}
  320.     base[3]= symbol_value(VV[18]);
  321.     bds_bind(VV[18],symbol_value(VV[18]));
  322.     base[4]= base[1];
  323.     vs_top=(vs_base=base+4)+1;
  324.     L12();
  325.     vs_top=sup;
  326.     base[4]= (V3);
  327.     if((simple_symlispcall_no_event(VV[69],base+4,1))==Cnil){
  328.     bds_unwind1;
  329.     goto T143;}
  330.     princ_str("\n    vs_top=(vs_base=base+",VV[24]);
  331.     base[4]= base[3];
  332.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  333.     princ_str(")+",VV[24]);
  334.     base[4]= number_minus((VV[18]->s.s_dbind),base[3]);
  335.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  336.     princ_char(59,VV[24]);
  337.     setq(VV[26],Ct);
  338.     bds_unwind1;
  339. T143:;
  340.     base[2]= (V3);
  341.     base[3]= caddr(cddr(base[0]));
  342.     symlispcall_no_event(VV[70],base+2,2);
  343.     return;
  344. T135:;
  345.     base[2]= car((V3));
  346.     base[3]= base[1];
  347.     base[4]= caddr(cddr(base[0]));
  348.     symlispcall_no_event(VV[71],base+2,3);
  349.     return;}
  350. }
  351. /*    function definition for C2CALL-GLOBAL    */
  352.  
  353. static L7()
  354. {    register object *base=vs_base;
  355.     register object *sup=base+VM6;
  356.     vs_reserve(VM6);
  357.     bds_check;
  358.     check_arg(4);
  359.     vs_top=sup;
  360. TTL:;
  361.     base[4]= Cnil;
  362.     bds_bind(VV[18],symbol_value(VV[18]));
  363.     base[6]= base[0];
  364.     if((simple_symlispcall_no_event(VV[72],base+6,1))==Cnil){
  365.     goto T167;}
  366.     if(!(type_of(base[1])==t_cons||base[1]==Cnil)){
  367.     goto T171;}
  368.     if((symbol_value(VV[27]))==Cnil){
  369.     goto T171;}
  370.     if((symbol_value(VV[28]))==Cnil){
  371.     goto T171;}
  372.     if(!(car(symbol_value(VV[28]))==base[0])){
  373.     goto T171;}
  374.     {object x= symbol_value(VV[29]),V4= VV[30];
  375.     while(!endp(V4))
  376.     if(eql(x,V4->c.c_car)){
  377.     goto T181;
  378.     }else V4=V4->c.c_cdr;
  379.     goto T171;}
  380. T181:;
  381.     if((simple_symlispcall_no_event(VV[73],base+6,0))==Cnil){
  382.     goto T171;}
  383.     if(!((length(base[1]))==(length(cdr(symbol_value(VV[28])))))){
  384.     goto T171;}
  385.     bds_bind(VV[22],VV[31]);
  386.     setq(VV[32],number_plus(symbol_value(VV[32]),VV[33]));
  387.     bds_bind(VV[29],make_cons(symbol_value(VV[32]),Cnil));
  388.     bds_bind(VV[34],make_cons((VV[29]->s.s_dbind),symbol_value(VV[34])));
  389.     base[9]=symbol_function(VV[74]);
  390.     {object V5;
  391.     object V6= cdr(symbol_value(VV[28]));
  392.     if(endp(V6)){
  393.     base[10]= Cnil;
  394.     goto T190;}
  395.     base[11]=V5=MMcons(Cnil,Cnil);
  396. T191:;
  397.     (V5->c.c_car)= list(2,(V6->c.c_car),Cnil);
  398.     if(endp(V6=MMcdr(V6))){
  399.     base[10]= base[11];
  400.     goto T190;}
  401.     V5=MMcdr(V5)=MMcons(Cnil,Cnil);
  402.     goto T191;}
  403. T190:;
  404.     base[11]= base[1];
  405.     (void)simple_lispcall_no_event(base+9,2);
  406.     if((cdr((VV[29]->s.s_dbind)))==Cnil){
  407.     bds_unwind1;
  408.     bds_unwind1;
  409.     bds_unwind1;
  410.     goto T185;}
  411.     princ_str("\nT",VV[24]);
  412.     base[9]= car((VV[29]->s.s_dbind));
  413.     (void)simple_symlispcall_no_event(VV[67],base+9,1);
  414.     princ_str(":;",VV[24]);
  415.     bds_unwind1;
  416.     bds_unwind1;
  417.     bds_unwind1;
  418. T185:;
  419.     base[6]= VV[35];
  420.     (void)simple_symlispcall_no_event(VV[75],base+6,1);
  421.     princ_str("\n    goto TTL;",VV[24]);
  422.     base[6]= VV[36];
  423.     base[7]= base[0];
  424.     symlispcall_no_event(VV[76],base+6,2);
  425.     bds_unwind1;
  426.     return;
  427. T171:;
  428.     if(!(type_of(base[1])==t_cons||base[1]==Cnil)){
  429.     goto T207;}
  430.     if((base[2])!=Cnil){
  431.     goto T207;}
  432.     base[6]= base[0];
  433.     base[7]= base[1];
  434.     base[8]= base[3];
  435.     base[4]= simple_symlispcall_no_event(VV[77],base+6,3);
  436.     if((base[4])==Cnil){
  437.     goto T207;}
  438.     bds_bind(VV[37],VV[38]);
  439.     base[7]=symbol_function(VV[68]);
  440.     base[9]= base[4];
  441.     base[10]= base[1];
  442.     base[8]= simple_symlispcall_no_event(VV[78],base+9,2);
  443.     (void)simple_lispcall_no_event(base+7,1);
  444.     symlispcall_no_event(VV[79],base+7,0);
  445.     bds_unwind1;
  446.     bds_unwind1;
  447.     return;
  448. T207:;
  449.     base[6]= get(base[0],VV[39],Cnil);
  450.     if(base[6]==Cnil)goto T225;
  451.     base[4]= base[6];
  452.     goto T224;
  453. T225:;
  454.     base[4]= get(base[0],VV[40],Cnil);
  455. T224:;
  456.     if((base[4])==Cnil){
  457.     goto T222;}
  458.     base[6]= base[1];
  459.     vs_top=(vs_base=base+6)+1;
  460.     L11();
  461.     vs_top=sup;
  462.     princ_str("\n    ",VV[24]);
  463.     base[6]= base[4];
  464.     (void)simple_symlispcall_no_event(VV[67],base+6,1);
  465.     princ_str("();",VV[24]);
  466.     base[6]= VV[25];
  467.     symlispcall_no_event(VV[68],base+6,1);
  468.     bds_unwind1;
  469.     return;
  470. T222:;
  471.     {object x= base[0],V7= symbol_value(VV[41]);
  472.     while(!endp(V7))
  473.     if(eql(x,car(V7->c.c_car))){
  474.     base[4]= (V7->c.c_car);
  475.     goto T238;
  476.     }else V7=V7->c.c_cdr;
  477.     base[4]= Cnil;}
  478. T238:;
  479.     if((base[4])==Cnil){
  480.     goto T236;}
  481.     base[6]= base[1];
  482.     vs_top=(vs_base=base+6)+1;
  483.     L11();
  484.     vs_top=sup;
  485.     princ_str("\n    L",VV[24]);
  486.     base[6]= cdr(base[4]);
  487.     (void)simple_symlispcall_no_event(VV[67],base+6,1);
  488.     princ_str("();",VV[24]);
  489.     base[6]= VV[25];
  490.     symlispcall_no_event(VV[68],base+6,1);
  491.     bds_unwind1;
  492.     return;
  493. T236:;
  494.     base[6]= base[0];
  495.     base[7]= base[1];
  496.     base[8]= base[2];
  497.     base[9]= Ct;
  498.     vs_top=(vs_base=base+6)+4;
  499.     L13();
  500.     bds_unwind1;
  501.     return;
  502. T167:;
  503.     base[6]= base[0];
  504.     base[7]= base[1];
  505.     base[8]= base[2];
  506.     base[9]= Cnil;
  507.     vs_top=(vs_base=base+6)+4;
  508.     L13();
  509.     bds_unwind1;
  510.     return;
  511. }
  512. /*    function definition for WT-SIMPLE-CALL    */
  513.  
  514. static L9()
  515. {    register object *base=vs_base;
  516.     register object *sup=base+VM7;
  517.     vs_reserve(VM7);
  518.     if(vs_top-vs_base<3) too_few_arguments();
  519.     if(vs_top-vs_base>4) too_many_arguments();
  520.     vs_base=vs_base+3;
  521.     if(vs_base>=vs_top){vs_top=sup;goto T255;}
  522.     vs_top=sup;
  523.     goto T256;
  524. T255:;
  525.     base[3]= Cnil;
  526. T256:;
  527.     princ_str("simple_",VV[24]);
  528.     base[4]= base[0];
  529.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  530.     princ_char(40,VV[24]);
  531.     if((base[3])==Cnil){
  532.     goto T263;}
  533.     princ_str("VV[",VV[24]);
  534.     base[4]= base[3];
  535.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  536.     princ_str("],",VV[24]);
  537. T263:;
  538.     princ_str("base+",VV[24]);
  539.     base[4]= base[1];
  540.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  541.     princ_char(44,VV[24]);
  542.     base[4]= base[2];
  543.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  544.     princ_char(41,VV[24]);
  545.     setq(VV[26],Ct);
  546.     base[4]= Ct;
  547.     vs_top=(vs_base=base+4)+1;
  548.     return;
  549. }
  550. /*    function definition for SAVE-FUNOB    */
  551.  
  552. static L10()
  553. {    register object *base=vs_base;
  554.     register object *sup=base+VM8;
  555.     vs_reserve(VM8);
  556.     bds_check;
  557.     check_arg(1);
  558.     vs_top=sup;
  559. TTL:;
  560.     {object V8= car(base[0]);
  561.     if((V8!= VV[3])
  562.     && (V8!= VV[80])
  563.     && (V8!= VV[13]))goto T279;
  564.     base[1]= Cnil;
  565.     vs_top=(vs_base=base+1)+1;
  566.     return;
  567. T279:;
  568.     if((V8!= VV[5]))goto T280;
  569.     base[1]= caddr(base[0]);
  570.     if((simple_symlispcall_no_event(VV[72],base+1,1))==Cnil){
  571.     goto T281;}
  572.     if((get(caddr(base[0]),VV[39],Cnil))!=Cnil){
  573.     goto T282;}
  574.     if((get(caddr(base[0]),VV[40],Cnil))!=Cnil){
  575.     goto T282;}
  576.     {object x= caddr(base[0]),V9= symbol_value(VV[41]);
  577.     while(!endp(V9))
  578.     if(eql(x,car(V9->c.c_car))){
  579.     goto T282;
  580.     }else V9=V9->c.c_cdr;}
  581. T281:;
  582.     base[2]= simple_symlispcall_no_event(VV[65],base+3,0);
  583.     base[1]= list(2,VV[21],base[2]);
  584.     if((symbol_value(VV[45]))==Cnil){
  585.     goto T295;}
  586.     princ_str("\n    ",VV[24]);
  587.     base[2]= base[1];
  588.     (void)simple_symlispcall_no_event(VV[67],base+2,1);
  589.     princ_str("=symbol_function(VV[",VV[24]);
  590.     base[2]=symbol_function(VV[67]);
  591.     base[4]= caddr(base[0]);
  592.     base[3]= simple_symlispcall_no_event(VV[81],base+4,1);
  593.     (void)simple_lispcall_no_event(base+2,1);
  594.     princ_str("]);",VV[24]);
  595.     goto T293;
  596. T295:;
  597.     princ_str("\n    ",VV[24]);
  598.     base[2]= base[1];
  599.     (void)simple_symlispcall_no_event(VV[67],base+2,1);
  600.     princ_str("=VV[",VV[24]);
  601.     base[2]=symbol_function(VV[67]);
  602.     base[4]= caddr(base[0]);
  603.     base[3]= simple_symlispcall_no_event(VV[81],base+4,1);
  604.     (void)simple_lispcall_no_event(base+2,1);
  605.     princ_str("]->s.s_gfdef;",VV[24]);
  606. T293:;
  607.     vs_top=(vs_base=base+1)+1;
  608.     return;
  609. T282:;
  610.     base[1]= Cnil;
  611.     vs_top=(vs_base=base+1)+1;
  612.     return;
  613. T280:;
  614.     if((V8!= VV[17]))goto T313;
  615.     base[2]= simple_symlispcall_no_event(VV[65],base+3,0);
  616.     base[1]= list(2,VV[21],base[2]);
  617.     bds_bind(VV[22],base[1]);
  618.     base[3]= caddr(base[0]);
  619.     (void)simple_symlispcall_no_event(VV[66],base+3,1);
  620.     vs_top=(vs_base=base+1)+1;
  621.     bds_unwind1;
  622.     return;
  623. T313:;
  624.     symlispcall_no_event(VV[63],base+1,0);
  625.     return;}
  626. }
  627. /*    function definition for PUSH-ARGS    */
  628.  
  629. static L11()
  630. {    register object *base=vs_base;
  631.     register object *sup=base+VM9;
  632.     vs_reserve(VM9);
  633.     bds_check;
  634.     check_arg(1);
  635.     vs_top=sup;
  636. TTL:;
  637.     if((base[0])!=Cnil){
  638.     goto T319;}
  639.     princ_str("\n    vs_base=vs_top;",VV[24]);
  640.     base[1]= Cnil;
  641.     vs_top=(vs_base=base+1)+1;
  642.     return;
  643. T319:;
  644.     if(!(type_of(base[0])==t_cons)){
  645.     goto T323;}
  646.     base[2]= symbol_value(VV[18]);
  647.     bds_bind(VV[18],symbol_value(VV[18]));
  648.     {object V10;
  649.     object V11;
  650.     V10= base[0];
  651.     V11= car((V10));
  652. T330:;
  653.     if(!(endp((V10)))){
  654.     goto T331;}
  655.     goto T326;
  656. T331:;
  657.     base[4]= simple_symlispcall_no_event(VV[65],base+5,0);
  658.     base[3]= list(2,VV[21],base[4]);
  659.     bds_bind(VV[22],base[3]);
  660.     base[4]= (V11);
  661.     base[5]= simple_symlispcall_no_event(VV[66],base+4,1);
  662.     bds_unwind1;
  663.     V10= cdr((V10));
  664.     V11= car((V10));
  665.     goto T330;}
  666. T326:;
  667.     princ_str("\n    vs_top=(vs_base=base+",VV[24]);
  668.     base[3]= base[2];
  669.     (void)simple_symlispcall_no_event(VV[67],base+3,1);
  670.     princ_str(")+",VV[24]);
  671.     base[3]= number_minus((VV[18]->s.s_dbind),base[2]);
  672.     (void)simple_symlispcall_no_event(VV[67],base+3,1);
  673.     princ_char(59,VV[24]);
  674.     setq(VV[26],Ct);
  675.     base[3]= Ct;
  676.     vs_top=(vs_base=base+3)+1;
  677.     bds_unwind1;
  678.     return;
  679. T323:;
  680.     base[1]= Cnil;
  681.     vs_top=(vs_base=base+1)+1;
  682.     return;
  683. }
  684. /*    function definition for PUSH-ARGS-LISPCALL    */
  685.  
  686. static L12()
  687. {    register object *base=vs_base;
  688.     register object *sup=base+VM10;
  689.     vs_reserve(VM10);
  690.     bds_check;
  691.     check_arg(1);
  692.     vs_top=sup;
  693. TTL:;
  694.     {object V12;
  695.     object V13;
  696.     V12= base[0];
  697.     V13= car((V12));
  698. T356:;
  699.     if(!(endp((V12)))){
  700.     goto T357;}
  701.     base[1]= Cnil;
  702.     vs_top=(vs_base=base+1)+1;
  703.     return;
  704. T357:;
  705.     base[2]= simple_symlispcall_no_event(VV[65],base+3,0);
  706.     base[1]= list(2,VV[21],base[2]);
  707.     bds_bind(VV[22],base[1]);
  708.     base[2]= (V13);
  709.     base[3]= simple_symlispcall_no_event(VV[66],base+2,1);
  710.     bds_unwind1;
  711.     V12= cdr((V12));
  712.     V13= car((V12));
  713.     goto T356;}
  714. }
  715. /*    function definition for C2CALL-UNKNOWN-GLOBAL    */
  716.  
  717. static L13()
  718. {    register object *base=vs_base;
  719.     register object *sup=base+VM11;
  720.     vs_reserve(VM11);
  721.     check_arg(4);
  722.     vs_top=sup;
  723. TTL:;
  724.     if((symbol_value(VV[23]))==Cnil){
  725.     goto T371;}
  726.     if((base[2])!=Cnil){
  727.     goto T373;}
  728.     base[4]= simple_symlispcall_no_event(VV[65],base+5,0);
  729.     base[2]= list(2,VV[21],base[4]);
  730.     princ_str("\n    ",VV[24]);
  731.     base[4]= base[2];
  732.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  733.     princ_str("=symbol_function(VV[",VV[24]);
  734.     base[4]=symbol_function(VV[67]);
  735.     base[6]= base[0];
  736.     base[5]= simple_symlispcall_no_event(VV[81],base+6,1);
  737.     (void)simple_lispcall_no_event(base+4,1);
  738.     princ_str("]);",VV[24]);
  739. T373:;
  740.     base[4]= base[1];
  741.     vs_top=(vs_base=base+4)+1;
  742.     L11();
  743.     vs_top=sup;
  744.     princ_str("\n    funcall_with_catcher(VV[",VV[24]);
  745.     base[4]=symbol_function(VV[67]);
  746.     base[6]= base[0];
  747.     base[5]= simple_symlispcall_no_event(VV[81],base+6,1);
  748.     (void)simple_lispcall_no_event(base+4,1);
  749.     princ_str("],",VV[24]);
  750.     base[4]= base[2];
  751.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  752.     princ_str(");",VV[24]);
  753.     base[4]= VV[25];
  754.     symlispcall_no_event(VV[68],base+4,1);
  755.     return;
  756. T371:;
  757.     if((base[2])==Cnil){
  758.     goto T400;}
  759.     base[4]= base[1];
  760.     vs_top=(vs_base=base+4)+1;
  761.     L11();
  762.     vs_top=sup;
  763.     if((base[3])==Cnil){
  764.     goto T406;}
  765.     if((symbol_value(VV[45]))==Cnil){
  766.     goto T409;}
  767.     princ_str("\n    funcall_no_event(",VV[24]);
  768.     base[4]= base[2];
  769.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  770.     princ_str(");",VV[24]);
  771.     goto T404;
  772. T409:;
  773.     princ_str("\n    CMPfuncall(",VV[24]);
  774.     base[4]= base[2];
  775.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  776.     princ_str(");",VV[24]);
  777.     goto T404;
  778. T406:;
  779.     princ_str("\n    funcall(",VV[24]);
  780.     base[4]= base[2];
  781.     (void)simple_symlispcall_no_event(VV[67],base+4,1);
  782.     princ_str(");",VV[24]);
  783. T404:;
  784.     base[4]= VV[25];
  785.     symlispcall_no_event(VV[68],base+4,1);
  786.     return;
  787. T400:;
  788.     base[4]= base[1];
  789.     if((simple_symlispcall_no_event(VV[82],base+4,1))==Cnil){
  790.     goto T425;}
  791.     base[4]= symbol_value(VV[18]);
  792.     base[5]= simple_symlispcall_no_event(VV[65],base+6,0);
  793.     base[2]= list(2,VV[21],base[5]);
  794.     if((symbol_value(VV[45]))==Cnil){
  795.     goto T433;}
  796.     princ_str("\n    ",VV[24]);
  797.     base[5]= base[2];
  798.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  799.     princ_str("=symbol_function(VV[",VV[24]);
  800.     base[5]=symbol_function(VV[67]);
  801.     base[7]= base[0];
  802.     base[6]= simple_symlispcall_no_event(VV[81],base+7,1);
  803.     (void)simple_lispcall_no_event(base+5,1);
  804.     princ_str("]);",VV[24]);
  805.     goto T431;
  806. T433:;
  807.     princ_str("\n    ",VV[24]);
  808.     base[5]= base[2];
  809.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  810.     princ_str("=(VV[",VV[24]);
  811.     base[5]=symbol_function(VV[67]);
  812.     base[7]= base[0];
  813.     base[6]= simple_symlispcall_no_event(VV[81],base+7,1);
  814.     (void)simple_lispcall_no_event(base+5,1);
  815.     princ_str("]->s.s_gfdef);",VV[24]);
  816. T431:;
  817.     base[5]= base[1];
  818.     vs_top=(vs_base=base+5)+1;
  819.     L12();
  820.     vs_top=sup;
  821.     if(symbol_value(VV[22])==VV[46]){
  822.     goto T453;}
  823.     if(!(symbol_value(VV[22])==VV[47])){
  824.     goto T454;}
  825. T453:;
  826.     princ_str("\n    lispcall",VV[24]);
  827.     if((base[3])==Cnil){
  828.     goto T460;}
  829.     princ_str("_no_event",VV[24]);
  830. T460:;
  831.     princ_str("(base+",VV[24]);
  832.     base[5]= base[4];
  833.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  834.     princ_char(44,VV[24]);
  835.     base[5]= make_fixnum(length(base[1]));
  836.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  837.     princ_str(");",VV[24]);
  838.     setq(VV[26],Ct);
  839.     base[5]= VV[25];
  840.     symlispcall_no_event(VV[68],base+5,1);
  841.     return;
  842. T454:;
  843.     if((base[3])==Cnil){
  844.     goto T478;}
  845.     base[6]= VV[48];
  846.     goto T476;
  847. T478:;
  848.     base[6]= VV[49];
  849. T476:;
  850.     base[7]= make_fixnum(length(base[1]));
  851.     base[5]= list(4,VV[42],base[6],base[4],base[7]);
  852.     symlispcall_no_event(VV[68],base+5,1);
  853.     return;
  854. T425:;
  855.     base[4]= symbol_value(VV[18]);
  856.     base[5]= base[1];
  857.     vs_top=(vs_base=base+5)+1;
  858.     L12();
  859.     vs_top=sup;
  860.     if(symbol_value(VV[22])==VV[46]){
  861.     goto T482;}
  862.     if(!(symbol_value(VV[22])==VV[47])){
  863.     goto T483;}
  864. T482:;
  865.     princ_str("\n    symlispcall",VV[24]);
  866.     if((base[3])==Cnil){
  867.     goto T489;}
  868.     princ_str("_no_event",VV[24]);
  869. T489:;
  870.     princ_str("(VV[",VV[24]);
  871.     base[5]=symbol_function(VV[67]);
  872.     base[7]= base[0];
  873.     base[6]= simple_symlispcall_no_event(VV[81],base+7,1);
  874.     (void)simple_lispcall_no_event(base+5,1);
  875.     princ_str("],base+",VV[24]);
  876.     base[5]= base[4];
  877.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  878.     princ_char(44,VV[24]);
  879.     base[5]= make_fixnum(length(base[1]));
  880.     (void)simple_symlispcall_no_event(VV[67],base+5,1);
  881.     princ_str(");",VV[24]);
  882.     setq(VV[26],Ct);
  883.     base[5]= VV[25];
  884.     symlispcall_no_event(VV[68],base+5,1);
  885.     return;
  886. T483:;
  887.     if((base[3])==Cnil){
  888.     goto T511;}
  889.     base[6]= VV[50];
  890.     goto T509;
  891. T511:;
  892.     base[6]= VV[51];
  893. T509:;
  894.     base[7]= make_fixnum(length(base[1]));
  895.     base[9]= base[0];
  896.     base[8]= simple_symlispcall_no_event(VV[81],base+9,1);
  897.     base[5]= list(5,VV[42],base[6],base[4],base[7],base[8]);
  898.     symlispcall_no_event(VV[68],base+5,1);
  899.     return;
  900. }
  901.